﻿using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class 玩家点 : MonoBehaviour
{
    public 玩家控制 m_所属玩家控制;
    public float m_爆炸延迟时间 = -99.0f;
    public 障碍方块 m_被碰方块;

    void Start ()
    {

    }

    private void OnTriggerEnter(Collider collider)
    {
        if (collider.gameObject.tag == "奖励" && m_所属玩家控制.m_头部 == this.gameObject)
        {
            Debug.Log("OnTrigger：" + this.gameObject.name);
            int 奖励 = collider.gameObject.GetComponent<奖励点>().m_奖励点数;
            DestroyObject(collider.gameObject);
            m_所属玩家控制.增加几个(奖励);
        }
        else
        {
        }
    }

    private void FixedUpdate()
    {
        if (m_爆炸延迟时间 > 0)
        {
            m_爆炸延迟时间 -= Time.deltaTime;
        }
        else if(-99<m_爆炸延迟时间 && m_爆炸延迟时间<0)
        {   
            m_爆炸延迟时间 = -99.0f;
            if (m_所属玩家控制.m_头部 == this.gameObject && m_被碰方块 != null)
            {
                m_所属玩家控制.丢失一个();
                m_被碰方块.m_所需点数--;
                地图管理器.m_当前地图管理器.m_当前玩家控制.m_得分++;

                if (m_被碰方块.m_所需点数 <= 0 )
                {
                    var tmp = Instantiate(m_所属玩家控制.m_方块碎裂特效, m_被碰方块.transform.position, m_被碰方块.transform.rotation);
                    DestroyObject(tmp, 3);

                    var tmpa = Instantiate(m_所属玩家控制.m_方块碎裂音效);

                    DestroyObject(tmpa, 3);

                    DestroyObject(m_被碰方块.gameObject);
                }
                if (m_所属玩家控制.m_小球列表.Count <= 0)
                {
                    m_所属玩家控制.结束游戏(m_被碰方块);
                }
            }
            
        }
        else{ }
    }
        private void OnCollisionEnter(Collision collision)
    {
        Debug.Log("丢了-start：" + this.gameObject.name);
        if (collision.collider.gameObject.tag == "障碍")
        {
            if(m_所属玩家控制.m_头部 == this.gameObject && m_所属玩家控制.m_小球列表.Count > 0)
            {
                m_被碰方块 = collision.collider.gameObject.GetComponent<障碍方块>();
                if (-collision.collider.gameObject.GetComponent<障碍方块>().m_所需点数 == 地图物体描述.常量_死亡数值)
                {
                    var tmp = Instantiate(m_所属玩家控制.m_方块碎裂特效, m_被碰方块.transform.position, m_被碰方块.transform.rotation);
                    DestroyObject(tmp, 3);
                    var tmpa = Instantiate(m_所属玩家控制.m_方块碎裂音效);
                    DestroyObject(tmpa, 3);
                    m_所属玩家控制.结束游戏(m_被碰方块);
                    return;
                }

                m_爆炸延迟时间 = 0.05f;
            }

            Debug.Log("丢了");

        }

        //if (collision.collider.gameObject.tag == "奖励")
        //{
        //    int 奖励 = collision.collider.gameObject.GetComponent<奖励点>().m_奖励点数;
        //    DestroyObject(collision.collider.gameObject);
        //    m_所属玩家爱控制.增加几个(奖励);

        //    Debug.Log("赚了");
        //}


        
    }

}
